home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1991-06-01 | 2.4 KB | 99 lines |
- 1 'Multiple route subroutine for PitStop America
- 2 'Version 1.1 developed by FutureWave Shareware
- 3 'Programmed by M. Broughton Boone
- 4 ' A Shareware Program
- 10 DIM C$(100):DIM S$(100): DIM MA(100): DIM M(100): DIM MN(100): DIM RC$(100): DIM RS$(100): DIM RHI(100): DIM RMA(100)
- 100 OPEN "I",#1,"carry.dat"
- 110 INPUT #1,CD$,SD$,DC$,DS$,DAY,SM,ED,ML,T,HT,TM,DM,CM
- 120 CLOSE #1
- 130 IH = HT
- 140 CS$ = CD$: SS$ = SD$
- 150 'One route program
- 160 'Var
- 170 'Var
- 180 'Open Highway File
- 190 OPEN "I",#1,"interste.dat"
- 200 I = 1
- 210 WHILE NOT EOF(1)
- 220 INPUT #1,H,C$,S$,MA,M,MN
- 230 IF H = IH THEN C$(I) = C$: S$(I) = S$: MA(I) = MA: M(I) = M: MN(I) = MN: I = I+1
- 240 WEND
- 250 CLOSE #1
- 260 FOR X = 1 TO I
- 270 IF C$(X)=CS$ AND S$(X) = SS$ THEN GOSUB 890
- 280 IF C$(X)=DC$ AND S$(X) = DS$ THEN GOSUB 900
- 290 NEXT X
- 300 OPEN "I",#1,"intrstrc.dat"
- 310 J = 1
- 320 WHILE NOT EOF(1)
- 330 INPUT #1,H,RC$,RS$,RHI,RMA
- 340 IF H = IH THEN RC$(J) = RC$: RS$(J) = RS$: RHI(J) = RHI: RMA(J) = RMA: J = J+1
- 350 WEND
- 360 CLOSE #1
- 370 'Determine inital segment data
- 380 OPEN "I",#1,"Driving.dat"
- 390 INPUT #1,AS,HD,AT$,MD,AT
- 400 CLOSE #1
- 410 OPEN "I",#1,"Refuel.dat"
- 420 INPUT #1,TC,MPG,B$,MT
- 430 CLOSE #1
- 440 'Mileage info
- 450 'Var
- 460 'var
- 470 SM = D-S: IF SM < 0 THEN F=-1 ELSE F = 1
- 480 SM = ABS(SM): TM = TM+SM
- 490 ML = MT: CM = 0
- 500 'Refuel?
- 510 J = SI+F
- 520 CM = CM + M(J): ML = ML - M(J)
- 530 IF ML < MN(J) THEN GOSUB 570
- 540 IF J = DI THEN 630
- 550 J = J+F
- 560 GOTO 520
- 570 'Refuel
- 580 OPEN "A",#1,"Fuel.dat"
- 590 WRITE #1,C$(J),S$(J),CM
- 600 CLOSE #1
- 610 T = T+1: CM = 0: ML = MT
- 620 RETURN
- 630 'Sleep Subroutine
- 640 J = SI + F: DM = MD
- 650 DM = DM - M(J): ED = ED + M(J)
- 660 IF MN(J) > DM THEN GOSUB 690
- 670 J = J+F: IF J = DI THEN 770
- 680 GOTO 650
- 690 'Sleep
- 700 TR = ED/AS: 'todays hours (TR)
- 710 TR$ = STR$(TR): TR$ = LEFT$(TR$,4): TR = VAL(TR$)
- 720 OPEN "A",#1,"Sleep.dat"
- 730 WRITE #1,DAY,TR,C$(J),S$(J),ED
- 740 CLOSE #1
- 750 DM = MD: ED = 0: DAY = DAY+1
- 760 RETURN
- 770 'Route information
- 780 HF = IH: HT = IH
- 790 OPEN "A",#1,"Route.dat"
- 800 WRITE #1,CS$,SS$,DC$,DS$,HF,HT,SM
- 810 CLOSE #1
- 820 'Carryover Information
- 830 OPEN "Carry.dat" FOR OUTPUT AS #1
- 840 WRITE #1,CD$,SD$,DC$,DS$,DAY,SM,ED,ML,T,HT,TM,DM,CM
- 850 CLOSE #1
- 860 'Goto main program
- 870 CHAIN "PitStop",200
- 880 'Housekeeping
- 890 SI = X: S = MA(X): K = 1: RETURN
- 900 DI = X: D = MA(X): RETURN
- 910 OPEN "I",#1,"interste.dat"
- 920 I = 1
- 930 WHILE NOT EOF(1)
- 940 INPUT #1,H,C$,S$,MA,M,MN
- 950 IF H = IH THEN C$(I) = C$: S$(I) = S$: MA(I) = MA: M(I) = M: MN(I) = MN: I = I+1
- 960 WEND
- 970 CLOSE #1
- 980 FOR X = 1 TO I
- 990 IF CD$ = C$(X) AND SD$ = S$(X) THEN DI = X: D = MA(X)
- 1000 IF CD$ = C$(X) AND SD$ = S$(X) THEN D = MA(X)
- 1010 NEXT X
- 1020 RETURN
-